Technical Field
The present invention pertains to communication terminals for use with unmanned vehicle systems and other remote applications. In particular, the present invention pertains to modular deterministic communication terminals that combine user data carried by multiple analog or digital data channels using different physical interfaces and protocols thereby generating a data stream, and that transmit and receive said user data in said data streams via one or more wired or wireless remote communication links to and from one or more similar terminals at remote and usually unattended locations.
To the extent practical, each user data channel is processed by independent modular deterministic hardware components; the use of software is thus minimized in order to improve the reliability of the overall system, particularly in safety critical applications.
Discussion of the Related Art
Generally, modern communication terminals for controlling and monitoring the operation of remote equipment consist of wired or wireless modems that connect the vehicle system's equipment (at either end of the communications link), usually via a single physical interface and protocol such as synchronous serial or Internet Protocol (IP), most often utilizing Ethernet for the physical layer. To accommodate the multiple types of interfaces and protocols that must be used to connect the controlling site's various types of equipment to the remote location's corresponding equipment at the other end of the link, additional hardware and software subsystems must be connected to the modems at each end. This additional hardware and software is required to translate and multiplex the wide variety of information needed into a smaller number of streams (usually one) containing data for transmission over the communication link to the distant communication terminal(s). In most such applications, each communication channel must be de-multiplexed and translated back into the original format at the other end of the link.
An unmanned aerial vehicle system, for instance, usually requires a mixture of real time communication channels for remote control and monitoring of the vehicle, analog or digital video channels to allow the person controlling the vehicle to see where the vehicle is and where it is going, and one or more analog voice channels (with push to talk and squelch) for two way radios on the remote vehicle. Depending on the nature of the vehicle's mission, channels to provide control and monitoring of a wide variety of remote sensors may also be required. Some of these channels are clearly critical to safe operation of the vehicle, while others are not. Furthermore, some of these communication channels may independently require encryption and authentication for operational or safety reasons, while other communication channels may require different encryption keys or may not need encryption at all.
A common characteristic of virtually all such data channels is that their information must be delivered to the distant end in near real time.
In the related art, real time translation and multiplexing/de-multiplexing (mux/demux) functions described in the previous paragraphs have been generally performed in software. This software frequently runs in a single processor, since a single bi-directional data stream is usually required for connection to the modem at each end of the link. An inherent disadvantage of passing real time user data through processors is the sequential nature of such processors; commands are executed one at a time in sequence. Even if each communication channel is assigned to a separate processor, with each such processor connected to a common mux/demux subsystem such as an Ethernet switch or Time Division Multiplex (TDM) hardware, there are still several real time functions associated with each communication channel that must share that channel processor resources, such as the Internet Protocol (IP), the User Datagram Protocol (UDP) and the Transmission Control Protocol (TCP).
A major disadvantage of operating multiple real time software functions in a single processor is the lack of deterministic behavior of the resulting system. Sharing processor resources generally requires use of a Real Time Operating System (RTOS) that attempts to fairly allocate the limited resources available within the processor. Despite the best efforts of highly skilled programmers using a high quality RTOS, when multiple software functions simultaneously and asynchronously compete for the opportunity to execute, there will inevitably be conflicts and undesirable temporal and logical interaction between such functions. Some of these interactions may be unforeseen. These asynchronous conflicts and unforeseen interactions are largely responsible for software's well-earned reputation for hidden errors remaining in the code undiscovered, sometimes for years, before causing a problem. The larger and more complex the software program, the greater the probability of such errors remaining undiscovered. Even assuming error free code (highly unlikely), operation of the resulting system is not deterministic, and may, in the worst case, result in some functions not being completed in a timely manner, thus causing the loss or corruption of user data, or even a system crash.
Systems in the related art frequently limit the available user data throughput to somewhat less than the processor's maximum real time throughput to allow for the occasional bottleneck resulting from multiple asynchronous simultaneous demands on the processor's limited sequential resources. The hardware must be overdesigned to allocate excess processor speed to compensate for worst case timing problems. Such overdesign is usually accomplished by using faster processors or by use of multiple processor cores, but this tends to increase power consumption. Availability of power, and ability to dissipate the resulting heat, are significant limiting factors in many remote applications. If multiple cores are used, the software design, debug, validation and test processes are even more complicated, time consuming and expensive. As higher data rates are required for increased data throughput, and as faster modems, remote transmission links and networks become available, the limitations caused by software bottlenecks become more serious.
There are numerous government regulations regarding reliability of software in aircraft, motor vehicles, medical devices and other applications involving public safety. These regulations can require, for any software that might cause a dangerous malfunction, extensive documentation, validation and certification of the software development process, followed by lengthy and stringent testing and certification of the resulting hardware/software system. These requirements add substantially to the development time and cost associated with prior art software based communication systems.
Any addition or change to the software code in prior art systems necessitates thorough retesting of the entire system or sub-system, and could trigger a requirement for recertification of the software, including functions unrelated to the portion of the software that changed. Existing prior art communication systems that perform most of their real time functions in software are subject to the above described certification requirements (and the associated costs and delays), both initially and whenever a function is added or a change is made. Expandability or growth potential of prior art systems is therefore limited due to the expense, effort and delay incurred when incorporating additional or modified software into those systems to support additional channel capacity.
Systems in the related art, if not designed for the specific application, generally do not provide means to perform functions unique to the user application requirements. As an example, the user may need to embed local or remote terminal administration commands, responses and terminal status reports in streams otherwise intended to be delivered to user equipment at the opposite end of the link. The user would therefore need a user specific multiplex and de-multiplex capability within the communication channel to separate such terminal administration data from data to be delivered to the opposite end of the link.
Another such special function may be translation of one form of navigation information into another for use by a modem for aiming the modem's antenna. Communication terminals in the related art generally do not provide a means of adding such special functions internal to the terminal without major software and possibly hardware additions and rework; otherwise, such functions must be performed in external units, adding size, weight and power to the terminal system, and incurring the additional cost and delay resulting from rewrite and recertification of the system software.
Some systems in the related art are not actually integrated systems at all, but rather collections of separate analog or digital channel interface units, multiplexer(s) and modem(s). Each such channel unit is required to perform the functions required to integrate a particular user interface with a multiplexer and thence to a modem. Each such unit has its own enclosure and power requirements and each requires connectors and cables to connect to the rest of the system. A system assembled from such separate boxes, frequently from different vendors, almost always weighs more, occupies more space, requires more power and cooling and exhibits numerous system integration problems compared to an integrated system designed from the outset to operate as a cohesive whole.